
function [value, isterminal, direction] = Bcr4bp_EventSB1Rot2DEarthRp(tau , xx , aux)
%
% 积分终止条件，SB1Rot，近地点（距地心 < 5e4 km）
%
% 作者：张晨
% 邮箱：chenzhang@csu.ac.cn
% 单位：中国科学院空间应用工程与技术中心，空间探索室
% 时间：2021年10月01日
%%%%%%%%%%%%%%%%%%%%%%%%

% ---------------- 载入参数 ----------------
mu = aux.EMRot.mu;
mus = aux.EMRot.mus;
as = aux.EMRot.as;
wm = aux.SB1Rot.wm;
l_star = aux.dim.SB1Rot_l;

xc = xx(1);
yc = xx(2);
vxc = xx(3);
vyc = xx(4);

%% --------------- 卫星加速度 ---------------
dxx = Bcr4bp_EqmSB1Rot2D(tau , xx , aux);
axc = dxx(3);
ayc = dxx(4);

%% --------------- 地球状态 ---------------
% 计算地月系统相对S-B1夹角
thetam = tau * wm;

% B1位置
xb1 = mus / (mus + 1);
yb1 = 0;

% 地球位置速度
xe = xb1 - mu / as * cos(thetam);
ye = yb1 - mu / as * sin(thetam);
vxe = wm * mu / as * sin(thetam);
vye = - wm * mu / as * cos(thetam);

% 地球旋转系加速度（只受到月球引力影响）
axe = (mu*cos(thetam))/as - (as^3*mu*((mu*cos(thetam))/as - (cos(thetam)*(mu - 1))/as))/(mus + 1) - (2*mu*wm*cos(thetam))/as;
aye = (mu*sin(thetam))/as - (as^3*mu*((mu*sin(thetam))/as - (sin(thetam)*(mu - 1))/as))/(mus + 1) - (2*mu*wm*sin(thetam))/as;

%% --------------- 近地点条件 ---------------
% 相切约束
stopCond1 = (xc - xe) * (vxc - vxe) + (yc - ye) * (vyc - vye);

% 近地点约束
cons1 = (vxc - vxe)^2 + (xc - xe) * (axc - axe) + (vyc - vye)^2 + (yc - ye) * (ayc - aye) > 0;

% 最大距离约束
cons2 = sqrt((xc - xe)^2 + (yc - ye)^2) < (5e4 / l_star);

% 满足所有约束条件
if cons1 && cons2

    value = stopCond1;

else

    value = [];

end

% isterminal = 0; % 是否执行积分终止条件(多次)
isterminal = 1; % 是否执行积分终止条件(单次)

direction = 0; % 积分终止方向，由正向负或者由负向正

end
